package com.probox.common.entity.service.customer;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.customer.RechargeInfo;
import com.probox.common.entity.domain.recharge.RechargeRecord;
import com.probox.common.entity.vo.customer.RechargeRightItem;

import java.util.List;


/**
 * 储值信息Service接口
 *
 * @author usoft
 * @date 2022-09-14
 */
public interface IRechargeInfoService extends IService<RechargeInfo> {

    /**
     * 查询储值信息列表
     *
     * @param rechargeInfo 储值信息
     * @return 储值信息
     */
    public List<RechargeInfo> getList(RechargeInfo rechargeInfo);

    /**
     * 详情
     * @param uid
     * @return
     */
    public RechargeInfo getRecharge(Long uid);

    /**
     * 添加储值
     *
     * @param rechargeInfo
     * @return
     */
    public boolean addOrEditRecharge(RechargeInfo rechargeInfo);

    /**
     * 查询储值信息
     *
     * @param rechargeId 储值信息ID
     * @return 储值信息
     */
    public RechargeInfo selectRechargeInfoById(Long rechargeId);

    public List<RechargeInfo> selectByStroeId(Long storeId);

    public List<RechargeRightItem> getRightByRechargeId(Long rechargeId);

    /**
     * 查询储值信息列表
     *
     * @param rechargeInfo 储值信息
     * @return 储值信息集合
     */
    public List<RechargeInfo> queryList(RechargeInfo rechargeInfo);


    /**
     * 查询储值信息列表总和
     *
     * @param rechargeInfo 储值信息
     * @return integer
     */
    public Integer queryCount(RechargeInfo rechargeInfo);


    /**
     * 新增储值信息
     *
     * @param rechargeInfo 储值信息
     * @return 结果
     */
    public boolean insertRechargeInfo(RechargeInfo rechargeInfo);

    /**
     * 修改储值信息
     *
     * @param rechargeInfo 储值信息
     * @return 结果
     */
    public boolean updateRechargeInfo(RechargeInfo rechargeInfo);

    /**
     * 批量删除储值信息
     *
     * @param rechargeIds 需要删除的储值信息ID
     * @return 结果
     */
    public boolean deleteRechargeInfoByIds(Long[] rechargeIds);


    public void recharge(RechargeRecord record);

}
